import {request} from "../../request/index.js"
Page({
  data: {
    goods_id:'',
    // address:'',
    defaultAddress:'',
    goods:'',
    num:'1',
    goodsPrice:'',
  },
  onLoad(options){
    // console.log(options);
    // console.log(options.goods_id);
    
    this.setData({
      goods_id:options.goods_id,
      num:options.num
    });
    // 发请求 点击id的得到商品信息
    this.getGoods(this.data.goods_id)
  },
  // 得到商品详情信息
  async getGoods(id){
    let that = this;
    // 发请求得到商品信息
    const goods = await request({url:"/buyGoods",method:'post',data:{id}})
    console.log(goods.data.result);
    
    that.setData({
        goods:goods.data.result[0],
        goodsPrice:goods.data.result[0].price
    })
  },
  onShow(){
    let that = this;
    // 获取缓存中收货地址
    // wx.getStorage({
    //   key: "address",
    //   success: function(res){
    //     that.setData({
    //       address:res.data
    //     })
    //   }
    // });
    // 地址 要么是默认 要么是第一个
    let userAddress = wx.getStorageSync("userAddress");
    let defaultAddress = userAddress.find(v=>v.add_check=='true');
      if(defaultAddress){
        // 如果有默认地址
        that.setData({
          defaultAddress
        })
      }else{
        // 如果没设默认地址 以第一个地址为默认地址
        that.setData({
          defaultAddress:userAddress[0]
        })
      }
  },
   // 获取收货地址
  //  handleChooseAddress(){    
  //   // 获取权限状态
  //   wx.getSetting({
  //     success: (result) => {
  //       const scopeAddress = result.authSetting["scope.address"];
  //       if(scopeAddress===true||scopeAddress===undefined){
  //         wx.chooseAddress({
  //           success: (res)=>{
  //             wx.setStorage({
  //               key: 'address',
  //               data: res
  //             })
  //           }
  //         })
  //       }else{
  //         // 用户拒绝过授权 将不会再弹出授权页 需要用户自己打开
  //         wx.openSetting({
  //           success: (res) => {
  //             console.log(res);
  //             // 用户打开授权页 再次获取地址授权
  //             wx.chooseAddress({
  //               success: (res)=>{
  //                 wx.setStorage({
  //                   key: 'address',
  //                   data: res
  //                 })
  //               }
  //             })
  //           }
  //         });
            
  //       }
  //     },
  //     fail: () => {},
  //     complete: () => {}
  //   });
  // },
  // 支付
    // 点击支付
    async handleOrderPay(){
      let that = this;
      // 1、发请求或从缓存中获取token
      const token = wx.getStorageSync("token");
      if(!token){
        const nickName = wx.getStorageSync("nickName")
        const token = await request({url:"/getToken",method:'Post',data:{nickName}})
        wx.setStorageSync('token', token.data.token)
      }
      // 2、发请求生成订单 获取订单编号order_number
      // 准备请求头参数
      const header = {token:token};
      // 准备请求体参数
      const order_price=this.data.goodsPrice*this.data.num;
      const order_addr=this.data.defaultAddress.add_area+this.data.defaultAddress.add_detail;
      let goods=[{
        id:that.data.goods_id,
        num:that.data.num,
        price:that.data.goodsPrice
      }];
      const orderParams={order_price,order_addr,goods};
      // 发请求 创建订单存入数据库 得到订单编码
      const res=await request({url:"/creatOrder",method:"POST",data:orderParams,header});
      // console.log(res.data.order_number);
      let order_number=res.data.order_number;
      // 3、通过token与order_num发请求 得到内置API支付需要的参数 个人无法调用 略过
      // const res1 = await request({url:'/getPayParams',method:'POST',header,data:{order_number}})
      // 4、调用支付API 略 自己想办法把支付状态改为true
      if (res.data.order_number) {
        // 弹窗问是否支付
        wx.showModal({
          title: '是否支付',
          content: '',
          success: function(res) {
            if(res.confirm){
              // 确认支付则跳转到truePay页面，将订单支付状态改为true
              // wx.navigateTo({
                
              //   // url: `../truePay/truePay?order_number=$(order_number)`
              //   url: '/pages/truePay/truePay'
              // })
              wx.navigateTo({
                // url: '/pages/truePay/truePay'
                url: '/pages/truePay/truePay?order_number='+order_number
              })
            }else{
              // 否 提示取消支付
              console.log('取消支付');
            }
          }
        })
          
      }
      // 5、删除缓存中  已购买的商品 也可不用删除
  
    }
})